home *** CD-ROM | disk | FTP | other *** search
/ Complete Linux / Complete Linux.iso / docs / apps / circuits / spice2g6.z / spice2g6 / spice / Fortran / intgr8.f < prev    next >
Encoding:
Text File  |  1989-02-03  |  2.6 KB  |  69 lines

  1.       subroutine intgr8(geq,ceq,capval,loct)
  2.       implicit double precision (a-h,o-z)
  3. c
  4. c     this routine performs the actual numerical integration for each
  5. c circuit element.
  6. c
  7. c spice version 2g.6  sccsid=tabinf 3/15/83
  8.       common /tabinf/ ielmnt,isbckt,nsbckt,iunsat,nunsat,itemps,numtem,
  9.      1   isens,nsens,ifour,nfour,ifield,icode,idelim,icolum,insize,
  10.      2   junode,lsbkpt,numbkp,iorder,jmnode,iur,iuc,ilc,ilr,numoff,isr,
  11.      3   nmoffc,iseq,iseq1,neqn,nodevs,ndiag,iswap,iequa,macins,lvnim1,
  12.      4   lx0,lvn,lynl,lyu,lyl,lx1,lx2,lx3,lx4,lx5,lx6,lx7,ld0,ld1,ltd,
  13.      5   imynl,imvn,lcvn,nsnod,nsmat,nsval,icnod,icmat,icval,
  14.      6   loutpt,lpol,lzer,irswpf,irswpr,icswpf,icswpr,irpt,jcpt,
  15.      7   irowno,jcolno,nttbr,nttar,lvntmp
  16. c spice version 2g.6  sccsid=status 3/15/83
  17.       common /status/ omega,time,delta,delold(7),ag(7),vt,xni,egfet,
  18.      1   xmu,sfactr,mode,modedc,icalc,initf,method,iord,maxord,noncon,
  19.      2   iterno,itemno,nosolv,modac,ipiv,ivmflg,ipostp,iscrch,iofile
  20. c spice version 2g.6  sccsid=blank 3/15/83
  21.       common /blank/ value(200000)
  22.       integer nodplc(64)
  23.       complex cvalue(32)
  24.       equivalence (value(1),nodplc(1),cvalue(1))
  25. c
  26. c
  27.       dimension qcap(1),ccap(1)
  28.       equivalence (qcap(1),value(1)),(ccap(1),value(2))
  29. c
  30. c
  31.       if (method.eq.2) go to 100
  32. c
  33. c  trapezoidal algorithm
  34. c
  35.       if (iord.eq.1) go to 100
  36.       ccap(lx0+loct)=-ccap(lx1+loct)*ag(2)
  37.      1   +ag(1)*(qcap(lx0+loct)-qcap(lx1+loct))
  38.       go to 190
  39. c
  40. c  gears algorithm
  41. c
  42.   100 go to (110,120,130,140,150,160), iord
  43.   110 ccap(lx0+loct)=ag(1)*qcap(lx0+loct)+ag(2)*qcap(lx1+loct)
  44.       go to 190
  45.   120 ccap(lx0+loct)=ag(1)*qcap(lx0+loct)+ag(2)*qcap(lx1+loct)
  46.      1              +ag(3)*qcap(lx2+loct)
  47.       go to 190
  48.   130 ccap(lx0+loct)=ag(1)*qcap(lx0+loct)+ag(2)*qcap(lx1+loct)
  49.      1              +ag(3)*qcap(lx2+loct)+ag(4)*qcap(lx3+loct)
  50.       go to 190
  51.   140 ccap(lx0+loct)=ag(1)*qcap(lx0+loct)+ag(2)*qcap(lx1+loct)
  52.      1              +ag(3)*qcap(lx2+loct)+ag(4)*qcap(lx3+loct)
  53.      2              +ag(5)*qcap(lx4+loct)
  54.       go to 190
  55.   150 ccap(lx0+loct)=ag(1)*qcap(lx0+loct)+ag(2)*qcap(lx1+loct)
  56.      1              +ag(3)*qcap(lx2+loct)+ag(4)*qcap(lx3+loct)
  57.      2              +ag(5)*qcap(lx4+loct)+ag(6)*qcap(lx5+loct)
  58.       go to 190
  59.   160 ccap(lx0+loct)=ag(1)*qcap(lx0+loct)+ag(2)*qcap(lx1+loct)
  60.      1              +ag(3)*qcap(lx2+loct)+ag(4)*qcap(lx3+loct)
  61.      2              +ag(5)*qcap(lx4+loct)+ag(6)*qcap(lx5+loct)
  62.      3              +ag(7)*qcap(lx6+loct)
  63. c... ceq is the equivalent current applicable to linear capacitance
  64. c    (inductance) only, i.e. q=c*v
  65.   190 ceq=ccap(lx0+loct)-ag(1)*qcap(lx0+loct)
  66.       geq=ag(1)*capval
  67.       return
  68.       end
  69.